Skip to main content

Full text of "Arduino"

Belvedere - A Butler Robot 



i 



Make Projects 



build, hack, tweak, share, discover,' 



Belvedere - A Butler Robot 



Written By: Andy Wolff 



O PARTS: 

i Robot Create Platform (1) 

Sparkfun 16x2 LCD (1) 

Adafruit Waveshield to store and play voice and music clips (1) 

HMC6352 compass module from Sparkfun (1) 

Custom LM386 amplifier board for speaker (1) 

Maxbotix Maxsonar EZ1 Ultrasonic Sensors (3) 

Sharp GP2D12 Analog IR Distance Sensors (2) 

3 inch speaker (1) 

Servo (1) 

For the spinning bowtie 

Various electronic components (1) 

Custom circuit boards for power and signal distribution (1) 



SUMMARY 

Belvedere is a robot I designed and built to serve appetizers at parties and entertain with 
jokes and dancing. He has the ability to navigate the first floor of our house while avoiding 
obstacles. Belvedere's first job assignment was entertaining guests at our son's first 
birthday! His main body sits on an iRobot Create, which he uses as a drive system. Here is 

© Make Projects www.makeprojects.com Page 1 of 7 



Belvedere - A Butler Robot 



a list of his main features 



- Navigates to one of four different rooms by turning a knob on his back 

- Avoids obstacles using non-contact sensors (ultrasonic and infrared) 

- Uses his British voice to offer food, make comments, and tell jokes 

- His flat head is perfect for a plate of appetizers or a cooler of drinks 

- He will play music and dance on command with a push of a button 

- LEDs on his front light up in various patterns to show he is active 

- Spinning bowtie! 

See below for a video of Belvedere in action! 

This project was inspired by many other robot projects. In particular, JoeCreate's Serverbot 
instructable gave me many great ideas and Belvedere wouldn't be a reality without his 
impressive work and documentation. 

Detailed photos can also be found at this picasa album 




Belvedere's main body is mounted to an i Robot Create which he uses as a drive system. 
The main body is made from a concrete form tube used in construction. The various circuit 
boards are mounted on a plexiglass table mounted firmly to the iRobot Create. The main 
body is also mounted firmly to the plexiglass table. Belvedere's flat head is made from a 
round piece of plexiglass lined with a non-skid mat. 



• In order to make Belvedere more stable, I mounted an extra swivel caster on the opposite 
side of the caster included with the iRobot Create. 



© Make Projects 



www.makeprojects.com 



Page 2 of 7 



Belvedere - A Butler Robot 







• Here is a list of electronic components used to create Belvedere: - i Robot Create platform 
- Arduino MEGA microcontroller (the brains of the operation) - Sparkfun 16x2 LCD for 
message display and debugging - Adafruit WaveShield used to store and produce voice 
and music clips - HMC6352 compass module from Sparkfun - Custom LM386 amplifier 
board to produce voice and music clips through speaker - 3 X Maxbotix Maxsonar EZ1 
Ultrasonic Ranging Sensors - 2 X Sharp GP2D12 Analog Distance Sensors - 3 inch 
speaker - Hobby servo for spinning the bowtie 

• There are standard electronic components including voltage regulators, switches, buttons, 
etc. 

• A few custom boards were created for power and signal distribution. 

• Details of the Arduino pin-out can be found here . 



© Make Projects 



www.makeprojects.com 



Page 3 of 7 



Belvedere - A Butler Robot 




• Belvedere can run in two different modes, NAVIGATE and ROAM. 

• In NAVIGATE mode, Belvedere keeps track of his location on a large grid of the house. To 
plan his move to the next destination, he uses a WAVEFRONT algorithm. I got the idea to 
use a wavefront algorithm from the Society of Robots website. In order to use this mode, 
the floor and permanent obstacles (walls, couches, etc) must be pre-mapped into a large 
matrix. Also, Belvedere must be started in the same location and orientation when he is 
turned on, otherwise he wouldn't have a reference. 

• In ROAM mode, Belvedere, will not keep track of his location in the house. He will move a 
few feet forward, pause for a while, turn randomly, and continue forward. 

• OBSTACLE AVOIDANCE: In NAVIGATE mode, Belvedere will constantly monitor his three 
ultrasonic ranging sensors when he moves forward. If an obstacle is detected closer than 
a certain threshold, he will begin to slow down gradually. If an obstacle is within 1 foot, he 
will stop and speak a warning. The Sharp IR sensors are used to veer Belvedere away 
from walls without slowing him down. In ROAM mode, if Belvedere detects an obstacle 
while moving forward, he will stop, rotate to a random angle, and continue forward in a 
different direction. 



© Make Projects 



www.makeprojects.com 



Page 4 of 7 



Belvedere - A Butler Robot 




© Make Projects www.makeprojects.com Page 5 of 7 



Belvedere - A Butler Robot 






• 



::: 



U.DM[SHS31M Stfl/l^OMHS 1 U) U) N M A 8 ri 

£! g H H H H ^ ^ HHHH HMtMrM 

1 M H H < , * 

COMMUNICATION 



< * * PWM 



* . z 2 


* > 
$pK)6.0t)0Vj fg t 


I 


1 

1 

> 


it »( 


z 

- «■ c 



MHMIMMIIMITlMMIIf 



i _-■ I it ' 



W * 



*US 



I <<<■> K1IM> 



4'* *» 



MEGA 



ARDUINO 



2560 



26 
28 
30 



?48 

H 

a 50 






POWER ANALOG IN 

Q H M « ^ 



S H N fl Tt ifl 

"*yw^f** W(JlHHHp|rlH 

<<<<<<iD< <<<<<<<< 



Belvedere's "brain" is the Arduino 
MEGA microcontroller. It has an 
incredible amount of inputs/outputs 
and memory for such a low-cost 
controller. Belvedere uses almost 
all of the 54 digital pins on the 
Arduino MEGA. 

CONNECT ARDUINO MEGA TO 
iROBOT CREATE: Most people 
that add a microcontroller to the 
i Robot Create use the i Robot 
Create Command Module, i Robot 
engineers supply example code 
with the Command Module so that 
it can communicate with the Create 
over the serial connection. I 
needed many more inputs/outputs 
and more memory than the 
Command Module could offer, so I 
decided to connect the Arduino 
MEGA to the Create. I wired the 
serial communication pins between 
the two and converted the 
Command Module code to Arduino 
code (very similar since they are 
both written in C). 

VOICE AND MUSIC: Belvedere's 
audio clips are pre-recorded and 
stored on an SD card. The Arduino 
can access any one of the clips as 
needed. Belvedere has at least 50 
different audio clips that are in 
different categories (offer food, 
move obstacle, joke, comment, 
music). Belvedere's voice was 
generated by the text-to-speech 



© Make Projects 



www.makeprojects.com 



Page 6 of 7 



Belvedere - A Butler Robot 



software at AT&T's Natural Voices 
website . You can choose gender 
and various accents. This website 
was convenient because I could 
directly export the file to . wav 

format. 



This document was last generated on 201 2-1 1 -03 03:1 1 :25 AM. 



© Make Projects 



www.makeprojects.com 



Page 7 of 7